上一篇我們學到怎麼使用Vim,還有修改commit message,這次要做的事情呢,就是要來合併跟拆解commit massenge。
Well接下來的起手勢還是一樣啦,先來個:
git log --oneline
這個時候就可以看到我們的歷時的commit紀錄,不過總覺得有點多又有點雜。
那就來開個互動模式吧!
git rebase -i 507908b
一樣來到剛剛那個地方,不過,這是想要把一些Vim的編輯重點稍微看一下:
我們可以看到其實指令有很多種,像上一篇我們就是用reword來做編輯,而這次呢,我們會使用到的是:
squash
well,來看看會變怎麼樣:
好的,這邊做的變更,其實是有一些意義的,因為我們覺得某一些紀錄是多餘的,所以我們想把它合併起來,
而我們必須知道一件事情:
互動模式中,紀錄的由上而下就是最舊的紀錄到最新的紀錄,這個跟我們用:
git log --oneline
這個指令叫出來的結果並不相同,必須要注意一下。
好的,那我們下squash這個指令的主要意義其實也是要讓我們合併紀錄,那大概知道之後,下了squash的那行紀錄就會跟前一行進行合併了,我們等等可以注意一下哪些會消失!
然後下完指令,跟上一篇一樣會進行全部的commit message的修改,我這邊就按照順序改成:
大致上是完成了,這個時候再把常用的指令給它下下去:
git log --oneline
這個時候就會看到一些合併的資料啦!
上面我們看到如何使用合併commit,我們這次要另外做的就是把一個commit拆成多個,這個要怎麼做呢?
我們一樣就是下最熟悉的指令:
git log --oneline
看一下現在的狀態,然後也是下rebase:
git rebase -i 507908b
然後一樣會跳出Vim編輯器
這個時候我們要做的就是另外一個指令啦:
edit
這個時候會突然停下來,嗯?
這個時候,我們要把一個commit拆成兩個,也就是說,之前好像有學過怎麼拆掉commit:
git reset HEAD^
這樣就會讓我們的狀態回到原先沒有合併的樣子,老樣子下一個指令:
git status
還有下面的狀態,由於剛剛拆出來的commit,我們的檔案也一起被拆出來了在工作目錄,可以看到狀態是Untracked:
所以接下來要做的事情就是要把它加回去囉!
git add
git commit -m "....."
用上面的指令把棄置在工作目錄的紅色檔案加回去吧
然後,最後也要記得,由於現在的狀態是在rebase,所以還是要繼續把rebase執行完成:
git rebase --continue
這樣,全部就結束了!
鐵人賽